/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.uoc.tfc.exuoc.utils.seguretat;

import java.security.*;


import edu.uoc.tfc.exuoc.controladors.GestorLogs ;
import edu.uoc.tfc.exuoc.utils.Eines;

/**
 *
 * @author emili
 */
public  final class Encriptar {

    public Encriptar() { super(); }

  
    /**
     *  Es podria fer servir qualsevol altre algorisme d'encriptació: SHA-1 ,etc
     * @param cadena, cadena a encriptar
     * @return retorna la cadena encriptada
     */
    public final String md5(String cadena){
        String cadenaMD5 = "";

        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            md5.reset();
            md5.update(cadena.getBytes());
            byte cadenaBytes[] = md5.digest();

            cadenaMD5=this.toString(cadenaBytes);
            
        } catch (NoSuchAlgorithmException ex) {
            GestorLogs .getLogger(Encriptar.class.getName()).error("Error encriptant la cadena indicada: {}",cadena);
        }
        return cadenaMD5;
    }


    private  String toString(byte[] cadenaBytes){
        String cad;
        StringBuffer cadenaBuffer = new StringBuffer();
        for (int i=0;i<cadenaBytes.length;i++) {
            String hex = Integer.toHexString(0xFF & cadenaBytes[i]);
            if(hex.length()==1) cadenaBuffer.append('0');
            cadenaBuffer.append(hex);
        }
        cad=cadenaBuffer.toString();
        return cad;

    }
    public static void main(String[] args){
        //TEST
        Encriptar e= new Encriptar();
        Eines.escriu(e.md5("Contenidor"));
    }


}
